/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prjtgl.controler.membre;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Button;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import prjtgl.metier.Application;
import prjtgl.metier.comptes.Membre;
import prjtgl.metier.comptes.profil_societe.Societe;
import prjtgl.metier.comptes.profil_utilisateur.DomaineExpertise;
import prjtgl.metier.comptes.profil_utilisateur.Profil;
import prjtgl.metier.comptes.profil_utilisateur.poste.Direction;
import prjtgl.metier.comptes.profil_utilisateur.poste.Experience;
import prjtgl.metier.comptes.profil_utilisateur.poste.Poste;
import prjtgl.util.SessionUtilisateur;

/**
 *
 * @author Adrien
 */
public class FormUpdateExp extends SelectorComposer<Window>
{

    
    @Wire
    Textbox societeExp, directionExp, posteExp, descriptionExp;
    
    @Wire
    Listbox domaineExp, profilExp;
    
    @Wire
    Datebox dateDebutExp, dateFinExp;
    
    @Wire
    Button addExperience;
    
    private Membre membre;
    
    public FormUpdateExp()
    {
        Clients.alert("Toto");
    }
    
    @Listen("onClick=#updateExperience")
    public void creerExperience()
    {
        Application ap = Application.getInstance();
        
        Experience experience = new Experience();
        String email = SessionUtilisateur.getUtilisateur().getEmail();
        membre = Application.getInstance().rechercherMembre(email);
       
        experience.setDateDebut(dateDebutExp.getValue());
        experience.setDateFin(dateFinExp.getValue());
        experience.setDescription(descriptionExp.getValue());
        
        /* Direction */
        Direction direction = new Direction();
        direction.setDescription(directionExp.getValue());
        // TODO societe requete
        direction.setSocietes(null);
        experience.setDirection(direction);
        
         
         
         /* Domaines experience */
         
        
        Set<Listitem> set =  domaineExp.getSelectedItems();
       
        Iterator i = set.iterator();
        List<DomaineExpertise> domaineExpertiseLst = new ArrayList<DomaineExpertise>();
        while ( i.hasNext())
        {         
            Listitem li = (Listitem) i.next();
            domaineExpertiseLst.add(ap.rechercherDomainesExpertise(li.getLabel()));
        }
        experience.setDomaines(domaineExpertiseLst);
        
        
     
        // TODO requete experience membre possede une date
        //experience.setEnCours(true);
        experience.setEnCours(false);
        
        experience.setMembre(membre);
       
        Poste poste = new Poste();
        poste.setIntitule(posteExp.getValue());
        experience.setPoste(poste);
       
        Profil profil = new Profil();
        profil.setIntitule(profilExp.getSelectedItem().getLabel());
        experience.setProfil(profil);
       
        Societe societe = new Societe();
        societe.setNom(societeExp.getValue());
        // TODO requete 
        societe.setDirections(null);
        experience.setSociete(societe);
        
       // ap.creerExperience(experience);
        
        societeExp.setValue("");
        directionExp.setValue("");
        posteExp.setValue("");
        descriptionExp.setValue("");
        domaineExp.setSelectedItem(null);
        profilExp.setSelectedIndex(0);
        dateDebutExp.setValue(null);
        dateFinExp.setValue(null);
        
      
    }
   
    
   
    
    
}
